4. 데이터 전송 기초4
DHCP (Dynamic Host Configuration Protocol): 자동 IP 주소 할당
DHCP 도입 배경과 필요성
수동 설정 방식의 한계:
-
대규모 네트워크에서 수백~수천 대 기기의 IP 수동 설정 불가능
-
주소 충돌 위험: 동일 IP를 실수로 중복 할당
-
관리 복잡성: 기기 추가/제거 시마다 수동 재설정
-
이동성 부족: 노트북 등 이동 기기의 네트워크 전환 불편
DHCP의 해결책: 프라이빗 네트워크 내에서 사용 가능한 IP 주소를 자동으로 할당하고 관리
DHCP의 핵심 가치:
─────────────────────────────
┌─ 자동화: 수동 설정 제거
├─ 중앙 관리: IP 풀 통합 관리
└─ 유연성: 임대/갱신/반환
전통적 방식:
─────────────────────────────
- IT 관리자가 수동 할당
- 엑셀로 IP 관리
- 충돌 시 수동 해결
DHCP 방식:
─────────────────────────────
- 자동 할당, 충돌 방지
- 동적 풀 관리
- 임대 시간 제어
DHCP 동작 원리: 4단계 프로세스
DHCP 4-Way Handshake:
═══════════════════════════════════════════════════════
클라이언트 DHCP 서버
(IP 없음: 0.0.0.0) (IP 풀 관리)
│ │
│ 1. DISCOVER (브로드캐스트) │
│ "DHCP 서버 있나요?" │
├─────────────────────────────>│
│ │ (사용 가능한 IP 검색)
│ │
│ 2. OFFER │
│ "192.168.1.100 어때요? │
│ 게이트웨이: 192.168.1.1 │
│<─────────────────────────────┤
│ DNS: 8.8.8.8" │
│ │
│ 3. REQUEST │
│ "192.168.1.100 사용할게요" │
├─────────────────────────────>│
│ │ (IP 예약 목록 추가)
│ │
│ 4. ACK │
│ "확인, 24시간 사용 가능" │
│<─────────────────────────────┤
│ │
(IP 주소 설정 완료) (임대 기록 저장)
네트워크 사용 시작
DHCP가 제공하는 정보와 임대 관리
할당 정보 (Configuration Parameters):
-
IP 주소: 클라이언트가 사용할 프라이빗 IP
-
서브넷 마스크: 네트워크 범위 정의
-
기본 게이트웨이: 외부 통신을 위한 라우터 주소
-
DNS 서버: 도메인 이름 해석 서버
-
임대 시간 (Lease Time): IP 주소 사용 가능 기간
임대 시간 메커니즘:

임대 시간 설계 이유:
-
단기 임대 (1~8시간): 카페, 공항 등 유동 인구가 많은 곳
-
중기 임대 (24시간): 일반 사무실, 학교
-
장기 임대 (7일~무제한): 서버, 고정 장비
NAT/NAPT: 주소 변환의 마법
NAT (Network Address Translation) 탄생 배경
IPv4 주소 고갈 문제:
-
43억 개 주소로는 전 세계 기기 감당 불가
-
1990년대 중반 주소 고갈 위기 도래
-
IPv6 전환까지의 임시방편 필요
NAT의 해결 방식: 여러 프라이빗 IP를 하나의 글로벌 IP로 묶어서 인터넷 접속
NAT 기본 구조:
═══════════════════════════════════════════════════════
프라이빗 네트워크 (10.0.0.0/24) 인터넷
───────────────────────────── ─────────
PC1: 10.0.0.10 ─┐
│
PC2: 10.0.0.20 ─┼─> [NAT 라우터] ───> 웹 서버
│ 내부: 10.0.0.1 142.250.185.46
PC3: 10.0.0.30 ─┘ 외부: 203.0.113.5
핵심 개념:
─────────────────────────────
- 내부: 여러 프라이빗 IP
- 외부: 단일 글로벌 IP
- 주소 변환을 통한 통신
NAPT (Network Address Port Translation): 포트를 활용한 다중화
기본 NAT의 한계:
-
1:1 매핑: 글로벌 IP 하나당 프라이빗 IP 하나만 지원
-
여러 기기가 동시에 외부 통신 불가능
NAPT의 혁신 - 포트 번호 활용:
NAPT 동작 과정:
═══════════════════════════════════════════════════════
WAS1 (10.0.0.10) NAT GW 외부 서버
WAS2 (10.0.0.20) (203.0.113.5) (142.250.185.46)
WAS3 (10.0.0.30)
│ │ │
│ 10.0.0.10:54321 │ │
├─────────────────>│ │
│ │ [테이블 기록] │
│ │ 54321 → 20001 │
│ │ 203.0.113.5:20001 │
│ ├───────────────────>│
│ │ │
│ 10.0.0.20:54322 │ │
├─────────────────>│ │
│ │ [테이블 기록] │
│ │ 54322 → 20002 │
│ │ 203.0.113.5:20002 │
│ ├───────────────────>│
│ │ │
│ 10.0.0.30:54323 │ │
├─────────────────>│ │
│ │ [테이블 기록] │
│ │ 54323 → 20003 │
│ │ 203.0.113.5:20003 │
│ ├───────────────────>│
│ │ │
│ │ 응답: 20001 │
│ │<───────────────────┤
│ │ [테이블 조회] │
│ 10.0.0.10:54321 │ 20001 → 10.0.0.10 │
│<─────────────────┤ │
NAPT 테이블 구조:
내부 IP:포트 → 외부 포트 → 목적지 IP:포트
──────────────────────────────────────────────────────
10.0.0.10:54321 → 20001 → 142.250.185.46:80
10.0.0.20:54322 → 20002 → 142.250.185.46:80
10.0.0.30:54323 → 20003 → 142.250.185.46:80
NAT/NAPT의 실무 활용과 한계
클라우드 환경에서의 NAT 게이트웨이:
VPC 구조 (10.0.0.0/16):
═══════════════════════════════════════════════════════
프라이빗 서브넷
─────────────────────────────
[웹서버1: 10.0.1.10] ─┐
[웹서버2: 10.0.1.20] ─┼─> [NAT Gateway]
[DB서버: 10.0.2.10] ─┘ 10.0.0.100
│
│
[Internet Gateway]
글로벌 IP: 54.123.45.67
│
[인터넷]
NAT Gateway 역할:
─────────────────────────────
- 아웃바운드 전용 (외부 API 호출)
- 패키지 다운로드
- 보안: 인바운드 차단
NAT의 장단점:
✅ 장점:
-
IPv4 주소 절약 (수천 대 기기가 글로벌 IP 하나 공유)
-
보안 강화 (내부 IP 구조 은닉)
-
유연한 내부 네트워크 재구성 가능
❌ 단점:
-
P2P 통신 어려움 (양쪽 모두 NAT 뒤에 있을 경우)
-
프로토콜 제약 (FTP 등 일부 프로토콜 동작 불가)
-
성능 오버헤드 (패킷마다 주소 변환 필요)
-
엔드투엔드 원칙 위배 (인터넷 설계 철학과 충돌)
라우팅 (Routing): 통신 경로 제어의 핵심
라우팅의 기본 원리
라우터의 핵심 작업: 패킷의 목적지 IP 주소를 분석하여 적절한 경로로 전달
라우터 패킷 처리 흐름:
═══════════════════════════════════════════════════════
[패킷 도착]
│
▼
[목적지 IP 확인]
│
▼
┌─────────────────────┐
│ 내가 관리하는 │
│ LAN 대상? │
└─────────────────────┘
│ │
YES NO
│ │
▼ ▼
[로컬 전달] [라우팅 테이블 검색]
ARP로 MAC │
확인 ▼
┌─────────────────┐
│ 매칭되는 │
│ 경로 있음? │
└─────────────────┘
│ │
YES NO
│ │
▼ ▼
[해당 경로] [기본 게이트웨이]
Next Hop 0.0.0.0/0
핵심 개념:
─────────────────────────────
- 목적지 기반 판단
- 최적 경로 선택
- 홉바이홉(Hop-by-Hop) 전달
라우팅 테이블과 메트릭
라우팅 테이블 구조:
목적지 네트워크 서브넷 마스크 게이트웨이 메트릭 인터페이스
─────────────────────────────────────────────────────────────────────────
10.0.1.0 255.255.255.0 직접 연결 0 eth0
192.168.1.0 255.255.255.0 10.0.1.1 10 eth0
8.8.8.8 255.255.255.255 10.0.1.1 20 eth0
0.0.0.0 0.0.0.0 10.0.1.254 100 eth1
메트릭 (Metric) - 경로 비용 측정:
메트릭 요소:
═══════════════════════════════════════════════════════
1. 홉 카운트 (Hop Count)
- 거쳐가는 라우터 수
2. 대역폭 (Bandwidth)
- 링크 속도
3. 지연시간 (Latency)
- 전송 지연
4. 신뢰성 (Reliability)
- 에러율
5. 부하 (Load)
- 트래픽 혼잡도
최단 경로 선택:
─────────────────────────────
메트릭 값이 가장 낮은 경로 선택
최적 경로 선택 예시:
경로 선택 시나리오:
═══════════════════════════════════════════════════════
출발지 목적지
10.0.1.10 ──┬──> [라우터 A] ──┬──> 192.168.1.10
│ 메트릭: 5 │
│ └──> [라우터 C] ──> 총: 5+3=8 ✅
│ 메트릭: 3
│
└──> [라우터 B] ──────> [라우터 D]
메트릭: 10 메트릭: 2
총: 10+2=12 ✗
경로 비교:
─────────────────────────────
A → C → 목적지: 총 메트릭 8 (선택됨)
A → D → 목적지: 총 메트릭 12 (미선택)
라우팅 프로토콜: IGP와 EGP
프로토콜 분류 기준 - AS (Autonomous System):
라우팅 프로토콜 분류:
═══════════════════════════════════════════════════════
IGP (Interior Gateway Protocol)
─────────────────────────────
- 동일 AS 내부
- 조직 내 라우팅
- 프로토콜: RIP, OSPF, EIGRP
EGP (Exterior Gateway Protocol)
─────────────────────────────
- AS 간 라우팅
- 인터넷 백본
- 프로토콜: BGP
AS (Autonomous System):
─────────────────────────────
- 16비트 번호: 1~65535
- 특정 조직의 네트워크 관리 단위
- 동일한 관리 정책 적용
주요 라우팅 프로토콜 비교:
|프로토콜|유형|알고리즘|용도|특징|
|---|---|---|---|---|
|RIP|IGP|Distance Vector|소규모 네트워크|홉 카운트 기반 (최대 15홉)|
|OSPF|IGP|Link State|대규모 엔터프라이즈|빠른 수렴, 계층 구조 지원|
|EIGRP|IGP|Hybrid|Cisco 네트워크|대역폭+지연 고려, Cisco 전용|
|BGP|EGP|Path Vector|인터넷 백본|AS 간 라우팅, 정책 기반|
실무 시나리오: 대기업 네트워크의 라우팅 구조
내부 네트워크 (IGP)와 외부 연결 (EGP)의 역할 분담:

각 계층의 역할:
1. 내부 네트워크 (IGP - OSPF):
역할: 회사 내부 지사들 간의 최적 경로 찾기
- 본사 ↔ 서울 지사: OSPF가 자동으로 최단 경로 계산
- 서울 ↔ 부산: 직접 연결 vs 본사 경유 중 메트릭 낮은 경로 선택
- 장애 발생 시 자동으로 우회 경로 탐색
예시: 부산 지사에서 본사로 데이터 전송
→ OSPF가 계산한 최적 경로로 자동 라우팅
2. 경계 라우터 (EGP - BGP):
역할: 인터넷(외부 AS)과의 연결 관리
- ISP A, ISP B 중 어느 경로로 나갈지 결정
- 외부에서 들어오는 트래픽을 내부로 전달
- 정책 기반: "비용", "속도", "신뢰성" 등 비즈니스 기준 적용
예시: 회사 웹사이트 접속
→ BGP가 ISP A 경로가 더 빠르다고 판단
→ ISP A를 통해 트래픽 라우팅
실제 패킷 흐름 예시:
외부 사용자가 부산 지사 서버 접속 시나리오:
═══════════════════════════════════════════════════════
외부 사용자 BGP 라우터 OSPF 네트워크 부산 서버
(인터넷) (경계) (내부) (192.168.10.50)
│ │ │ │
│ 1. 패킷 도착 │ │ │
│ "AS 65001의 │ │ │
│ 192.168.10.50" │ │ │
├───────────────────>│ │ │
│ │ │ │
│ │ [BGP 판단] │ │
│ │ "우리 AS 주소" │ │
│ │ "내부로 전달" │ │
│ │ │ │
│ │ 2. 내부로 전달 │ │
│ ├──────────────────>│ │
│ │ │ │
│ │ │ [OSPF 판단] │
│ │ │ "부산 지사" │
│ │ │ "최적 경로" │
│ │ │ │
│ │ │ 3. 부산으로 │
│ │ ├───────────────>│
│ │ │ │
│ │ │ 4. 응답 │
│ │ │<───────────────┤
│ │ 5. 경계로 전달 │ │
│ │<──────────────────┤ │
│ 6. 인터넷으로 전송 │ │ │
│<───────────────────┤ │ │
핵심 이해:
IGP (OSPF) = "우리 집 안에서 방 찾기"
→ 본사, 지사들 간의 효율적 경로 자동 계산
→ 빠르게 변화 대응, 내부 최적화
EGP (BGP) = "다른 집(조직)과 연결하기"
→ 인터넷과 우리 네트워크 연결
→ 정책 기반, 비즈니스 요구사항 반영
→ 안정성과 제어 우선
기본 게이트웨이 (Default Gateway): 미지의 경로를 위한 출구
기본 게이트웨이의 역할
개념: 라우팅 테이블에 명시되지 않은 모든 목적지로 가는 패킷을 처리하는 "최후의 수단"
기본 게이트웨이 결정 흐름:
═══════════════════════════════════════════════════════
[패킷 도착]
│
▼
[라우팅 테이블 검색]
│
▼
┌─────────────────────┐
│ 매칭되는 │
│ 경로 존재? │
└─────────────────────┘
│ │
YES NO
│ │
▼ ▼
[해당 경로로] ┌─────────────────────┐
[전달] │ 기본 게이트웨이 │
│ 설정됨? │
└─────────────────────┘
│ │
YES NO
│ │
▼ ▼
[기본 GW로] [패킷 폐기]
[전달] [ICMP 에러]
[0.0.0.0/0]
설계 철학:
─────────────────────────────
"알 수 없는 목적지는 상위 라우터에게 위임"
기본 게이트웨이 설정 패턴
일반 클라이언트 설정:
# 개인 PC의 라우팅 테이블
목적지 게이트웨이 설명
────────────────────────────────────────
192.168.1.0 직접 연결 로컬 LAN
0.0.0.0 192.168.1.1 기본 게이트웨이 (모든 외부 트래픽)
엔터프라이즈 라우터 설정:
계층적 게이트웨이 구조:
═══════════════════════════════════════════════════════
내부 네트워크 외부
───────────────────────────── ─────────
[클라이언트] ──> [내부 라우터] ──> [경계 라우터] ──> [ISP]
기본 GW: 10.0.1.1 기본 GW: 코어
10.0.1.1 ISP 라우터 라우터
│
▼
[인터넷]
계층적 게이트웨이 원칙:
─────────────────────────────
"각 계층마다 상위로 위임"
인터넷 게이트웨이: 클라우드 환경의 특수 사례
AWS VPC에서의 게이트웨이 구조:
VPC (10.0.0.0/16) 구조:
═══════════════════════════════════════════════════════
퍼블릭 서브넷 (10.0.1.0/24)
─────────────────────────────
[웹서버]
기본 GW: 10.0.1.1 (IGW로 직접)
│
└──> [Internet Gateway] ──> [인터넷]
(IGW: 0.0.0.0/0)
프라이빗 서브넷 (10.0.2.0/24)
─────────────────────────────
[앱서버] ──┐
├──> [NAT Gateway] ──> [IGW] ──> [인터넷]
[DB서버] ──┘
기본 GW: NAT GW
라우팅 테이블 분리:
─────────────────────────────
- 퍼블릭: IGW 직접 연결
- 프라이빗: NAT GW 경유
라우팅 테이블 예시:
# 퍼블릭 서브넷 라우팅 테이블
목적지 게이트웨이 설명
──────────────────────────────────────────────
10.0.0.0/16 local VPC 내부 통신
0.0.0.0/0 igw-xxxxx 인터넷 게이트웨이
# 프라이빗 서브넷 라우팅 테이블
목적지 게이트웨이 설명
──────────────────────────────────────────────
10.0.0.0/16 local VPC 내부 통신
0.0.0.0/0 nat-xxxxx NAT 게이트웨이
서브넷 (Subnet): 네트워크 분할과 주소 체계
서브넷 마스크의 진화: 클래스에서 CIDR로
전통적 클래스 기반 주소 체계의 한계:
클래스 A: 0.0.0.0 ~ 127.255.255.255 (1,600만 주소/네트워크)
클래스 B: 128.0.0.0 ~ 191.255.255.255 (65,536 주소/네트워크)
클래스 C: 192.0.0.0 ~ 223.255.255.255 (254 주소/네트워크)
문제점:
- 클래스 A: 너무 큼 (주소 낭비)
- 클래스 C: 너무 작음 (기업 사용 불가)
- 유연성 부족 (고정된 크기만 사용 가능)
CIDR (Classless Inter-Domain Routing): 유연한 주소 할당
CIDR 표기법:
CIDR 표기법 해부:
═══════════════════════════════════════════════════════
192.168.1.0/24
│ │
│ └─ 프리픽스 길이
│ (상위 24비트는 네트워크 주소)
│ (하위 8비트는 호스트 주소)
│
└─ IP 주소
사용 가능 주소:
─────────────────────────────
2^8 = 256개
실제 사용: 254개 (네트워크/브로드캐스트 제외)
CIDR 계산 예시:
192.168.1.0/24
─────────────────────────────────────────
네트워크 주소: 192.168.1.0
첫 번째 호스트: 192.168.1.1
마지막 호스트: 192.168.1.254
브로드캐스트: 192.168.1.255
총 주소: 256개
사용 가능: 254개
192.168.1.0/25 (서브넷 분할)
─────────────────────────────────────────
서브넷 1: 192.168.1.0/25 (192.168.1.0 ~ 192.168.1.127)
서브넷 2: 192.168.1.128/25 (192.168.1.128 ~ 192.168.1.255)
각 서브넷: 126개 호스트
서브넷 설계 실전 가이드
엔터프라이즈 네트워크 서브넷 구성:
본사 네트워크 서브넷 구성 (10.0.0.0/16 = 65,536 주소):
═══════════════════════════════════════════════════════
10.0.0.0/24 관리 네트워크 (254 호스트)
│
├─ 10.0.0.10 DHCP 서버
├─ 10.0.0.11 DNS 서버
└─ 10.0.0.12 NTP 서버
10.0.1.0/22 직원 네트워크 (1,022 호스트)
│
└─ 일반 사용자 PC
10.0.10.0/24 서버 네트워크 (254 호스트)
│
├─ 웹 서버
├─ 앱 서버
└─ DB 서버
10.0.20.0/28 DMZ (14 호스트)
│
└─ 공개 서비스
10.0.30.0/23 게스트 WiFi (510 호스트)
│
└─ 방문자 접속
설계 원칙:
─────────────────────────────
- 용도별 분리
- 적절한 크기 할당
- 확장 여유 확보
클라우드 VPC 서브넷 베스트 프랙티스:
VPC 서브넷 설계 (10.0.0.0/16):
═══════════════════════════════════════════════════════
가용영역 A (Multi-AZ 고가용성)
─────────────────────────────
10.0.1.0/24 퍼블릭 서브넷
└─ 웹 서버, 로드밸런서
10.0.11.0/24 프라이빗 서브넷
└─ 애플리케이션 서버
10.0.21.0/24 데이터베이스 서브넷
└─ RDS, ElastiCache
가용영역 B (Multi-AZ 고가용성)
─────────────────────────────
10.0.2.0/24 퍼블릭 서브넷
10.0.12.0/24 프라이빗 서브넷
10.0.22.0/24 데이터베이스 서브넷
설계 고려사항:
─────────────────────────────
- 고가용성 (다중 AZ)
- 계층 분리 (보안 강화)
- 주소 낭비 최소화
서브넷 마스크 계산 실무 팁
빠른 계산법:
/24 = 255.255.255.0 → 256개 주소 (254개 사용)
/25 = 255.255.255.128 → 128개 주소 (126개 사용)
/26 = 255.255.255.192 → 64개 주소 (62개 사용)
/27 = 255.255.255.224 → 32개 주소 (30개 사용)
/28 = 255.255.255.240 → 16개 주소 (14개 사용)
/29 = 255.255.255.248 → 8개 주소 (6개 사용)
/30 = 255.255.255.252 → 4개 주소 (2개 사용, P2P 링크)
실무 도구 활용:
# Linux/Mac에서 서브넷 계산
$ ipcalc 192.168.1.0/24
Address: 192.168.1.0
Netmask: 255.255.255.0 = 24
Wildcard: 0.0.0.255
Network: 192.168.1.0/24
HostMin: 192.168.1.1
HostMax: 192.168.1.254
Broadcast: 192.168.1.255
Hosts/Net: 254
IPv6: 차세대 인터넷 프로토콜
IPv4 한계와 IPv6 도입
IPv4 주소 고갈 현실:
-
2011년: IANA 중앙 풀 고갈
-
2015년: 북미/유럽 지역 풀 고갈
-
NAT로 버티고 있지만 근본 해결 아님
IPv6의 압도적 주소 공간:
주소 공간 비교:
═══════════════════════════════════════════════════════
IPv4 (32비트):
─────────────────────────────
43억 개 (4,294,967,296)
2^32 주소
IPv6 (128비트):
─────────────────────────────
340간 개 (3.4 × 10^38)
2^128 주소
IPv6 주소 구조와 표기법
주소 형식:
완전한 형식:
2001:0db8:85a3:0000:0000:8a2e:0370:7334
압축 형식 (연속된 0 생략):
2001:0db8:85a3::8a2e:0370:7334
앞자리 0 생략:
2001:db8:85a3::8a2e:370:7334
주소 구성 요소:
IPv6 주소 구조 (128비트):
═══════════════════════════════════════════════════════
2001:0db8:85a3:0042::1
│ │ │ │ │
└─────┴─────┘ │ │
글로벌 │ │
라우팅 │ └─ 인터페이스 ID (64비트)
프리픽스 │ 호스트 식별
(48비트) │
ISP 할당 └─ 서브넷 ID (16비트)
조직 내 분할
구성:
─────────────────────────────
48비트: 글로벌 라우팅 프리픽스
16비트: 서브넷 ID
64비트: 인터페이스 ID
IPv6 주요 특징과 개선사항
IPv4 대비 핵심 개선:
IPv6의 혁신:
═══════════════════════════════════════════════════════
1. 주소 공간 확장
- 사실상 무한대의 주소
2. 헤더 단순화
- 라우팅 효율 증가
3. 자동 구성
- SLAAC (Stateless Address Autoconfiguration)
4. 보안 내장
- IPsec 필수
5. QoS 지원
- 플로우 레이블
NAT 불필요:
─────────────────────────────
- 엔드투엔드 통신 복원
- P2P 자유로움
주소 타입 비교:
|타입|IPv4|IPv6|설명|
|---|---|---|---|
|유니캐스트|개별 주소|개별 주소|1:1 통신|
|브로드캐스트|255.255.255.255|❌ 없음|전체 전송 (IPv6는 멀티캐스트로 대체)|
|멀티캐스트|224.0.0.0/4|FF00::/8|그룹 전송|
|애니캐스트|❌ 비공식|✅ 공식 지원|가장 가까운 노드로 전송|
IPv6 자동 구성: SLAAC
SLAAC (Stateless Address Autoconfiguration): DHCP 없이도 자동으로 IPv6 주소 할당
SLAAC 동작 과정:
═══════════════════════════════════════════════════════
새 호스트 IPv6 라우터
(부팅) (네트워크 제공)
│ │
│ 1. 링크-로컬 주소 생성│
│ fe80::/64 + MAC ID │
│ │
│ 2. Router Solicitation│
│ "라우터 정보 주세요" │
├──────────────────────>│
│ │
│ 3. Router Advertisement│
│ "프리픽스: │
│<──────────────────────┤
│ 2001:db8::/64" │
│ │
│ 4. 글로벌 주소 생성 │
│ 2001:db8:: + ID │
│ │
│ 5. DAD (중복 탐지) │
│ Neighbor Solicit │
│ │
│ 6. 주소 설정 완료 │
│ 통신 시작 │
DHCPv6와의 조합:
IPv6 주소 할당 방식:
═══════════════════════════════════════════════════════
1. SLAAC (상태 없음)
- 주소 자동 생성
- DNS 정보 없음
2. DHCPv6 (상태 있음)
- 모든 정보 서버 관리
- IPv4 DHCP와 유사
3. SLAAC + DHCPv6 (하이브리드)
- 주소는 SLAAC
- DNS는 DHCPv6
IPv4/IPv6 공존 전략
전환 메커니즘:
IPv4/IPv6 공존 방법:
═══════════════════════════════════════════════════════
1. 듀얼 스택 (Dual Stack)
─────────────────────────────
- IPv4와 IPv6 동시 실행
- 가장 일반적
[애플리케이션]
│
┌────┴────┐
│ │
IPv4 IPv6
스택 스택
│ │
└────┬────┘
│
[이더넷]
2. 터널링 (Tunneling)
─────────────────────────────
- IPv6 over IPv4
- 6to4, Teredo
- IPv4 네트워크를 IPv6로 터널링
3. 변환 (Translation)
─────────────────────────────
- NAT64/DNS64
- 프로토콜 간 주소 변환
듀얼 스택 구성 예시:
호스트 네트워크 스택:
═══════════════════════════════════════════════════════
[애플리케이션 계층]
│
▼
[TCP/UDP]
│
┌────┴────┐
│ │
▼ ▼
[IPv4] [IPv6]
스택 스택
│ │
└────┬────┘
│
▼
[이더넷]
외부 통신:
─────────────────────────────
- IPv4 목적지 → IPv4 사용
- IPv6 목적지 → IPv6 사용
종합: 현대 네트워크의 통합 아키텍처
모든 요소가 협력하는 실전 시나리오
기업 네트워크 구성 예시:
기업 네트워크 전체 구조:
═══════════════════════════════════════════════════════
인터넷 (IPv4 + IPv6)
│
└─> [ISP 라우터: BGP AS 1234]
│
▼
┌─────────────────┐
│ 경계 계층 │
├─────────────────┤
│ 엣지 라우터 │ ← 기본 GW: ISP, NAT/NAPT 수행
│ 방화벽 │
└─────────────────┘
│
▼
┌─────────────────────────────────────┐
│ 코어 네트워크 (10.0.0.0/16) │
├─────────────────────────────────────┤
│ [L3 스위치: OSPF 라우팅] │
│ │
│ ┌──────────────────────────────┐ │
│ │ 관리 서브넷 (10.0.0.0/24) │ │
│ ├──────────────────────────────┤ │
│ │ DHCP: 10.0.0.10 │ │
│ │ DNS: 10.0.0.11 │ │
│ └──────────────────────────────┘ │
│ │
│ ┌──────────────────────────────┐ │
│ │ 직원 서브넷 (10.0.1.0/22) │ │
│ ├──────────────────────────────┤ │
│ │ 직원 PC (DHCP 할당) │ │
│ │ 노트북 (듀얼 스택) │ │
│ └──────────────────────────────┘ │
│ │
│ ┌──────────────────────────────┐ │
│ │ 서버 서브넷 (10.0.10.0/24) │ │
│ ├──────────────────────────────┤ │
│ │ 웹서버 (고정 IP) │ │
│ │ DB서버 (고정 IP) │ │
│ └──────────────────────────────┘ │
└─────────────────────────────────────┘
동작 흐름:
─────────────────────────────
1. DHCP로 IP 자동 할당
2. 내부: OSPF 라우팅
3. 외부: NAT 주소 변환
4. 기본 GW로 인터넷 연결
패킷 여행의 전체 과정
시나리오: 직원 PC에서 외부 웹사이트 접속
패킷 여행의 전 과정:
═══════════════════════════════════════════════════════
직원 PC DHCP L3 NAT ISP 웹 서버
10.0.1.100 서버 스위치 라우터 (BGP) 142.250.185.46
│ │ │ │ │ │
│ [부팅 시] │ │ │ │ │
│ DHCP Discover│ │ │ │ │
├─────────────>│ │ │ │ │
│ │ │ │ │ │
│ IP: 10.0.1.100 │ │ │ │
│<─────────────┤ │ │ │ │
│ GW: 10.0.1.1 │ │ │ │ │
│ DNS: 10.0.0.11 │ │ │ │
│ │ │ │ │ │
│ [웹 접속] │ │ │ │ │
│ 목적: 142.250.185.46│ │ │ │
│ 출발: 10.0.1.100 │ │ │ │
├────────────────────>│ │ │ │
│ │ │ │ │ │
│ │ │ [라우팅 테이블]│ │
│ │ │ 매칭 없음 │ │
│ │ │ → 기본 GW │ │
│ │ │ │ │ │
│ │ ├───────>│ │ │
│ │ │ │ │ │
│ │ │ │ [NAPT] │ │
│ │ │ │ 10.0.1.100:54321 │
│ │ │ │ → 203.0.113.5:20001 │
│ │ │ │ │ │
│ │ │ ├───────>│ │
│ │ │ │ 출발: 203.0.113.5 │
│ │ │ │ 목적: 142.250.185.46│
│ │ │ │ │ │
│ │ │ │ │ [BGP] │
│ │ │ │ │ 최적 경로 │
│ │ │ │ │ │
│ │ │ │ ├───────────>│
│ │ │ │ │ │
│ │ │ │ │ 응답 │
│ │ │ │ │<───────────┤
│ │ │ │ 목적: 203.0.113.5 │
│ │ │ │<───────┤ │
│ │ │ │ │ │
│ │ │ │ [NAPT 테이블 조회] │
│ │ │ │ 20001 → 10.0.1.100 │
│ │ │ 목적: 10.0.1.100 │
│ │ │<───────┤ │ │
│ │ │ │ │ │
│ │ │ [서브넷 매칭] │
│ │ │ 10.0.1.0/22 │
│<────────────────────┤ │ │ │
│ │ │ │ │ │
네트워크 설계 핵심 원칙
계층적 설계:
네트워크 3계층 설계:
═══════════════════════════════════════════════════════
액세스 계층 (Access Layer)
─────────────────────────────
- 최종 사용자 연결
- 스위치, 액세스 포인트
- VLAN 분할
- 보안 정책 적용
분산 계층 (Distribution Layer)
─────────────────────────────
- 라우팅과 정책
- L3 스위치, 방화벽
- DHCP, NAT 수행
- 서브넷 간 통신
코어 계층 (Core Layer)
─────────────────────────────
- 고속 전송
- 코어 스위치, 라우터
- 최소 정책, 최대 성능
자동화와 관리:
현대 네트워크 관리:
═══════════════════════════════════════════════════════
DHCP → IP 자동 할당
라우팅 프로토콜 → 동적 경로 학습
NAT/NAPT → 주소 자동 변환
IPv6 SLAAC → 무상태 자동 구성
운영 효율성:
─────────────────────────────
- 수동 개입 최소화
- 장애 자동 복구
- 확장성 확보
핵심 개념 정리
네트워크 자동화 기술 요약
DHCP:
-
프라이빗 네트워크 내 IP 주소 자동 할당
-
임대 시간 관리로 효율적 주소 재사용
-
게이트웨이, DNS 등 네트워크 설정 자동 배포
NAT/NAPT:
-
프라이빗 IP ↔ 글로벌 IP 변환
-
포트 번호 활용하여 다중 연결 지원
-
IPv4 주소 절약과 보안 강화
라우팅:
-
패킷의 최적 경로 결정 (메트릭 기반)
-
IGP (내부) vs EGP (외부) 프로토콜
-
AS 단위로 관리 정책 적용
기본 게이트웨이:
-
알 수 없는 목적지의 최후 경로
-
0.0.0.0/0 (모든 목적지)
-
계층적 위임 구조
서브넷:
-
CIDR로 유연한 네트워크 분할
-
IPv6 병행 사용으로 전환 중
-
용도별 주소 공간 효율적 관리
실무 적용 체크리스트
네트워크 설계 시 고려사항:
✅ DHCP 풀 크기 산정
- 동시 접속 사용자 수 + 20% 여유
✅ 서브넷 분할 전략
- 부서/기능별 독립 서브넷
- 적절한 CIDR 블록 할당 (/24, /22 등)
✅ 라우팅 프로토콜 선택
- 소규모: 정적 라우팅
- 중규모: OSPF
- 대규모/ISP: BGP
✅ NAT/방화벽 정책
- 아웃바운드: NAT 활성화
- 인바운드: 필요한 포트만 포워딩
✅ IPv6 전환 계획
- 듀얼 스택 구성
- 점진적 마이그레이션
트러블슈팅 흐름:
네트워크 문제 대응 프로세스:
═══════════════════════════════════════════════════════
[네트워크 문제 발생]
│
▼
┌─────────────┐
│ IP 주소 │
│ 할당됨? │
└─────────────┘
│ │
NO YES
│ │
▼ ▼
[DHCP 확인] ┌─────────────┐
- 서버 │ 로컬 통신 │
- 임대 풀 │ 가능? │
└─────────────┘
│ │
NO YES
│ │
▼ ▼
[서브넷 ┌─────────────┐
마스크 │ 외부 통신 │
확인] │ 가능? │
└─────────────┘
│ │
NO YES
│ │
▼ ▼
[기본 GW] [DNS 문제]
- 라우팅 [앱 문제]
- NAT
네트워크는 결국 경로 찾기
패킷 전달의 핵심 질문:
═══════════════════════════════════════════════════════
누구에게? → IP 주소
어떻게 찾아? → 라우팅
주소가 부족하면? → NAT/IPv6
자동화는? → DHCP
네트워크 분할은? → 서브넷
결국 모두 연결됨:
─────────────────────────────
- 효율적 경로 결정
- 자동화된 관리
- 확장 가능한 구조